1. Field of the Invention
This invention relates to communication networks. More specifically, the present invention relates to the level of fault tolerance of network elements.
2. Description of the Related Art
A variety of reasons exist for a user to configure a network element. For example, a network element is configured at setup, as well as responsive to changes in network policies, account modifications, account deletions, additions, etc. Changes to a network may require new configurations to be entered into the network elements of the network.
To configure a network element, a user logs into the network element and enters the desired configurations one operation at a time. The network element processes each line of configuration entered by the user. If a configuration causes a process in the network element to crash or a process crashes for another reason, then the user must reconfigure the network element at some, possible, unknown point before the crash.
Most network elements have databases to store the configurations entered by the user. In this type of network element, if a process crashes, then the configuration entered by the user is not entirely lost and can be processed from the database once the process restarts. Unfortunately, if the configuration caused the crash, then the process will continue to crash because the configuration is repeatedly processed. Moreover, in such network elements the correct state of the network element is not indicated in the database at the time of the crash and restart. The network element may therefore be in a partially configured state. In addition, one user may enter two configurations to achieve a desired state for the network element, but not achieve it because a second user's configuration (entered concurrently with the first user's configurations) is processed between the first user's two configurations. The second user's configuration may conflict with the first user's configurations. Such line by line processing of configurations can lead to inconsistent states of the network element in a multiple user environment. Moreover, if the process storing the configurations crashes, then the network element must be reconfigured. All of the configurations in the database cannot be processed upon restart of the network element because one user's configurations may conflict with another user's configurations.
Communication networks suffer when a network element is brought down by an errant configuration or some other fault within the network element. The time spent determining the exact state of a crashed network element and then reconfiguring the crashed network element is detrimental to businesses relying on the network and the owner of the network.